﻿Public Class ProductoPedido : Implements IEquatable(Of ProductoPedido)
    Private _Nombre As String
    Private _Cantidad As Integer
    Private _PrecioUnidad As Decimal


    Public Property Nombre As String
        Get
            Return _Nombre
        End Get
        Set(value As String)
            If value.Length < 2 Then
                _Nombre = "Error"
            End If
            Dim gestPro As New GestionProductos
            Dim pro As New Producto
            pro.Nombre = value
            Dim sino As Boolean = False
            For i As Integer = 0 To gestPro.Productos.Count - 1
                If gestPro.Productos(i).Equals(pro) Then
                    sino = True
                    _PrecioUnidad = gestPro.Productos(i).Precio
                    Exit For
                End If
            Next
            If sino = False Then
                _Nombre = ("Error, no existe ese producto")
            End If
            If sino = True Then
                _Nombre = value
            End If
        End Set
    End Property
    Public ReadOnly Property Precio As Decimal
        Get
            Return _PrecioUnidad * Cantidad
        End Get
    End Property

    Public Property Cantidad As Integer
        Get
            Return _Cantidad
        End Get
        Set(value As Integer)
            If value <= 0 Then
                _Cantidad = 1
            ElseIf value > 50 Then
                _Cantidad = 50

            Else
                _Cantidad = value
            End If

        End Set
    End Property
    Public Sub New(ByVal nombre As String, ByVal cantidad As Integer)
        Me.Nombre = nombre
        Me.Cantidad = cantidad

    End Sub

    Public Sub New()

    End Sub
    Public Overloads Function Equals(ByVal other As ProductoPedido) As Boolean Implements System.IEquatable(Of ProductoPedido).Equals
        Return other IsNot Nothing AndAlso Me.Nombre.ToLower = other.Nombre.ToLower

    End Function

End Class
